package cn.kgc.dao;

import cn.kgc.pojo.Menu;
import cn.kgc.pojo.Role;
import cn.kgc.pojo.Role_Menu;
import cn.kgc.pojo.User;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * @author: 张鹏飞
 * @date: 2022/1/20
 * @description:
 */
@Mapper
public interface UserDao {
    /**
     * 登录时遍历每个人拥有的权限
     *
     * @param userCode
     * @param userPwd
     * @return
     */
    User getLogin(@Param("userCode") String userCode, @Param("userPwd") String userPwd);

    /**
     * 分页展示员工的信息带模糊查询
     *
     * @param userName
     * @return
     */
    Page<User> selUsers(@Param("userName") String userName);

    /**
     * 改变某人的职位
     *
     * @param rId
     * @param id
     * @return
     */
    int updRole(@Param("rId") int rId, @Param("id") int id);

    /**
     * 修改密码
     *
     * @param
     * @param password
     * @return
     */
    int updPassword(@Param("userCode") String userCode, @Param("password") String password);

    /**
     * 遍历职位
     *
     * @return
     */
    List<Role> selRoles();

    /**
     * 登录
     *
     * @param userCode
     * @param userPwd
     * @return
     */
    int login(@Param("userCode") String userCode, @Param("userPwd") String userPwd);

    /**
     * 遍历所有权限
     *
     * @return
     */
    List<String> selMenu();

    /**
     * 修改某个职位所拥有的的权限
     * @param rId
     * @param mId
     * @param status
     * @return
     */
    int updRole_Menu(@Param("rId") Integer rId, @Param("mId")Integer mId, @Param("status")Integer status);

    /**
     * 获取用户名
     * @param userCode
     * @param userPwd
     * @return
     */
    String zpf_getUserName(@Param("userCode") String userCode, @Param("userPwd") String userPwd);

    String zpf_getUserRole(@Param("userCode") String userCode, @Param("userPwd") String userPwd);

    List<Menu> selMenuByRid(@Param("rId") Integer rId);

    List<Role_Menu> selAllMenuByRid(@Param("rId") Integer rId);
}
